Modern multi-core and/or multi-processor computers provide for the execution of multiple software programs concurrently, requiring the hardware resources of the computer to be shared across the executing programs. For example, the processing capabilities provided by the processors of the computing system may be divided among the various programs equally, or may be allocated to each program depending on priority or need. Similarly, the memory of the computing system may be partitioned, with a portion of memory being allocated to each program. Simultaneous attempts by the executing programs to access memory, storage, input/output (“I/O”) devices, and other hardware resources may be mediated to allow orderly sharing between the programs. The allocation and mediation of shared resources is traditionally the role of the operating system (“OS”) controlling execution of multiple application programs in the computing system.
In a virtualization system, the hardware resources of a host computer are abstracted and presented as one or more individual virtual machines. Each virtual machine may host a separate instance of an OS. A virtual machine monitor (“VMM”) executing on the host computer may be responsible for allocating processor time and memory among the virtual machines, and for mediating access to shared resources. The VMM may attempt to fairly allocate limited hardware resources, such as processor time and memory, to each virtual machine to ensure that the OS hosted by each virtual machine performs as desired. However, other limited resources, such as memory bandwidth, may not be allocated among the virtual machines, but utilized on demand by the OSs and applications programs executing within each virtual machine. This may result in the OS and programs executing in one virtual machine “stealing” limited hardware resources from other virtual machines, adversely impacting the performance of the programs executing in the other virtual machines.
It is with respect to these and other considerations that the disclosure made herein is presented.